package com.divemotor.ventarepuestosinternet.dao.impl;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.divemotor.ventarepuestosinternet.dao.SeguimientoEstadoCotizacionDAO;
import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.SeguimientoEstadoCotizacion;
import com.divemotor.ventarepuestosinternet.model.SeguimientoEstadoCotizacionPK;
@Repository (value="seguimientoEstadoCotizacionDAO")
public class SeguimientoEstadoCotizacionDAOImpl implements SeguimientoEstadoCotizacionDAO, Serializable{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 3364635043312810045L;
	
	@Autowired 
	private SessionFactory sessionFactory;
	 
	@Override
	public void guardar(SeguimientoEstadoCotizacion seguimientoEstadoCotizacion)
			throws DivemotorBusinessException {
		sessionFactory.getCurrentSession().saveOrUpdate(seguimientoEstadoCotizacion);
		
	}

	@Override
	public SeguimientoEstadoCotizacion obtenerPorId(
			SeguimientoEstadoCotizacionPK seguimientoEstadoCotizacionPK) {
		
		return (SeguimientoEstadoCotizacion) sessionFactory.getCurrentSession().get(SeguimientoEstadoCotizacion.class, seguimientoEstadoCotizacionPK);
	}

	@Override
	public List<SeguimientoEstadoCotizacion> listarPorIdCotizacion(
			Integer idcotizacion) {
		Criteria criteria = sessionFactory.getCurrentSession().createCriteria(SeguimientoEstadoCotizacion.class,"seguimientoEstadoCotizacion");
        criteria.createAlias("seguimientoEstadoCotizacion.cotizacion", "cotizacion");
		criteria.add(Restrictions.eq("cotizacion.idCotizacion", idcotizacion));
		return criteria.list();
	}

}
